#include <REGX52.H>
#include "LCD1602.h"	//包含LCD1602头文件
#include "Delay.h"		//包含Delay头文件
#include "key.h"
#include <intrins.h>
#include "TIMER.h"
int Result=0;
unsigned char Xchar=0;
unsigned char KeyNumber=0;

sbit Trig=P1^1;
sbit Echo=P1^0;
void send()
{
		Trig=1;
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		Trig=0;
		TR0=1;     //timer0开启计数
}

void count(){
	//time=TH0*256+TL0;		
	//dist=(long)(time*1.085)*0.17;//换算成mm为单位
	LCD_ShowNum(2,1,TH0,8);	
	LCD_ShowNum(2,9,TL0,8);	
	TH0=0;
	TL0=0;
}

void main()
{
	
	LCD_Init();
	TimeInit();
	LCD_ShowString(2,1,"String");
	while(1)
	{
		KeyNumber=Key();
		if(KeyNumber==1)
		{
			LCD_ShowNum(1,1,Result++,3);	//在LCD的1行1列显示Result，长度为3位   Result自增;	
			send();			
		}		

		while(Echo)
		{P2=0x80;} //当RX为1计数并等待，当1结束跳出循环，
		TR0=0;    
		count();   //条用计算距离函数
			//跳出循环后，timer1关闭计数，此时TH0和TL0得值就是 RX为1得 时间长度	
			//当RX为1计数并等待，当1结束跳出循环，	
		LCD_ShowNum(1,6,Trig,2);	
		LCD_ShowNum(1,10,Echo,2);
		//
	}
}
